// https://leetcode.cn/problems/check-if-binary-string-has-at-most-one-segment-of-ones/
// Created by ade on 2022/10/9.
// 给你一个二进制字符串 s ，该字符串 不含前导零 。
//
//如果 s 包含 零个或一个由连续的 '1' 组成的字段 ，返回 true​​​ 。否则，返回 false 。
//
//如果 s 中 由连续若干个 '1' 组成的字段 数量不超过 1，返回 true​​​ 。否则，返回 false 。
#include <string>
#include <iostream>

using namespace std;

class Solution {
public:
    // 总结一句话：含有1的片段不能超过1个
    bool checkOnesSegment(string s) {
        int num = 0;
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == '0') continue;
            if (num == 1) return false;
            while (i < s.size() && s[i] == '1') i++;
            num++;
        }
        return true;
    }
};

int main() {
    Solution so;
    string s1 = "1001";
    cout << so.checkOnesSegment(s1);
    return 0;
}